home *** CD-ROM | disk | FTP | other *** search
- @rem = '
- @goto endofperl
- ';
- #+---------------------------------------------------------------------------
- #
- # File: R U N W 3 2 . B A T
- #
- # Contents: Perl/cmd script to prevent fatal page fault when using Win9x
- # and running winnt32.exe from a network share.
- #
- # Author: kumarp 21-August-98
- #
- # Notes:
- # Windows95 does not allow an executable on a network share to be copied
- # to pagefile before executing it, it simply runs it directly
- # from the network share. In case of a network problem, this results
- # in a fatal pagefault error.
- #
- # This script is written with the aim to avoid this problem when
- # running winnt32.exe from the ntbuilds release shares. It simply
- # copies all winnt32.exe files (~ 4MB) to a temporary directory on the
- # local hard drive. It does not copy the entire release share to your
- # hard drive. It then launches winnt32.exe from the local hard drive.
- #
- #----------------------------------------------------------------------------
-
- my $usage_help = "Usage: runw32.bat [any option valid for winn32.exe]";
-
- if ($ARGV[0] =~ /[-\/]([hH?]|(help))/i)
- {
- print $usage_help;
- exit;
- }
-
- if (rindex($0, '\\') >= 0)
- {
- $curdir = substr($0, 0, rindex($0, '\\'));
- }
- else
- {
- $curdir = `cd`;
- }
-
- chomp($curdir);
-
- $tempDir = $ENV{"TEMP"};
- $winnt32_src = $curdir;
- $winnt32_dst = "$tempDir\\winnt32";
- print "Please wait while files are being copied from $winnt32_src to $winnt32_dst...\n";
- `xcopy /q/s/d $winnt32_src\\*.* $winnt32_dst`;
- die "...error copying files from $winnt32_src: $!\n" if ($? != 0);
-
- $nt5_src=$curdir;
- if ($nt5_src =~ /(.+)winnt32$/i)
- {
- $nt5_src = $1;
- }
-
- $cmdline = "$winnt32_dst\\winnt32.exe /s:$nt5_src " . join(" ", @ARGV);
- print "$cmdline\n";
- `$cmdline`;
- #`rd /s/q $winnt32_dst`;
- #`deltree /y $winnt32_dst`;
- __END__
- :endofperl
- @echo off
-
- set THISFILE=%0
- if not exist %THISFILE% set THISFILE=%0.bat
-
- if "%TEMP%"=="" goto not_set_temp
- if "%TMP%"=="" goto not_set_temp
- set ARGS=
- :loop
- if .%1==. goto endloop
- set ARGS=%ARGS% %1
- shift
- goto loop
- :endloop
-
- set WINNT32_DIR=%TEMP%\winnt32
- if not exist %WINNT32_DIR% md %WINNT32_DIR%
-
- rem Need to find a good location for perl.exe
-
- set PERL=\\kumarp1\public\perl\perl.exe
- if not exist %PERL% set PERL=\\scratch\scratch\kumarp\perl\perl.exe
- if not exist %PERL% goto perl_not_found
-
- %PERL% %THISFILE% %ARGS%
-
- goto the_end
-
- :perl_not_found
- echo Cannot load %PERL%
- goto the_end
-
- :not_set_temp
- echo Environment variable TEMP or TMP is not set
- goto the_end
-
- :the_end
-